home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / arts / artsmoduleseffects.idl < prev    next >
Encoding:
Text File  |  2005-09-10  |  4.3 KB  |  148 lines

  1. /*  This file is part of the KDE project
  2.     Copyright (C) 2002 Arnold Krille <arnold@arnoldarts.de>
  3.  
  4.     This library is free software; you can redistribute it and/or
  5.     modify it under the terms of the GNU Library General Public
  6.     License version 2 as published by the Free Software Foundation.
  7.  
  8.     This library is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11.     Library General Public License for more details.
  12.  
  13.     You should have received a copy of the GNU Library General Public License
  14.     along with this library; see the file COPYING.LIB.  If not, write to
  15.     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  16.     Boston, MA 02111-1307, USA.
  17.  
  18. */
  19.  
  20. /*
  21.  * DISCLAIMER: The interfaces in envmixer.idl (and the derived .cc/.h files)
  22.  *             DO NOT GUARANTEE BINARY COMPATIBILITY YET.
  23.  *
  24.  * They are intended for developers. You shouldn't expect that applications in
  25.  * binary form will be fully compatibile with further releases of these
  26.  * interfaces.
  27.  */
  28.  
  29. #include <artsflow.idl>
  30. #include <artsgui.idl>
  31. #include <artsmodulescommon.idl>
  32.  
  33. module Arts {
  34.  
  35.     interface StereoToMono : Arts::SynthModule {
  36.         attribute float pan; // From -1(left) to +1(right)
  37.         in audio stream inleft, inright;
  38.         out audio stream outmono;
  39.     };
  40.  
  41.     interface MonoToStereo : Arts::SynthModule {
  42.         attribute float pan; // Same as StereoToMono
  43.         in audio stream inmono;
  44.         out audio stream outleft, outright;
  45.     };
  46.  
  47.     interface StereoBalance : Arts::StereoEffect {
  48.         attribute float balance;
  49.     };
  50.     interface StereoBalanceGuiFactory : Arts::GuiFactory {};
  51.  
  52.     interface FiveBandMonoComplexEQ : Arts::StereoEffect {
  53.         readonly attribute StereoToMono s2m;
  54.         attribute float lowfreq, lowq, lowgain;
  55.         attribute float mid1freq, mid1q, mid1gain;
  56.         attribute float mid2freq, mid2q, mid2gain;
  57.         attribute float mid3freq, mid3q, mid3gain;
  58.         attribute float highfreq, highq, highgain;
  59.         readonly attribute MonoToStereo m2s;
  60.     };
  61.     interface FiveBandMonoComplexEQGuiFactory : Arts::GuiFactory {};
  62.  
  63.     interface Synth_VOICE_REMOVAL : StereoEffect {
  64.         attribute float position, frequency;
  65.     };
  66.  
  67.     interface VoiceRemovalGuiFactory : GuiFactory {
  68.     };
  69.  
  70.     interface Synth_STEREO_COMPRESSOR : StereoEffect {
  71.         attribute float attack, release, threshold, ratio, output;
  72.         attribute boolean thru;
  73.     };
  74.  
  75.     interface StereoCompressorGuiFactory : GuiFactory {
  76.     };
  77.  
  78.     interface Synth_STEREO_PITCH_SHIFT : StereoEffect {
  79.         attribute float speed, frequency;
  80.     };
  81.  
  82.     interface Synth_STEREO_PITCH_SHIFT_FFT : StereoEffect {
  83.         attribute float speed, scaleFactor;
  84.         attribute long frameSize, oversample;
  85.     };
  86.  
  87.     interface Synth_STEREO_FIR_EQUALIZER : StereoEffect {
  88.         attribute sequence<GraphPoint> frequencies;
  89.         attribute long taps;
  90.     };
  91.  
  92.     interface StereoFirEqualizerGuiFactory : GuiFactory {
  93.     };
  94.  
  95.     interface Synth_FREEVERB : StereoEffect {
  96.         attribute float roomsize, damp, wet, dry, width, mode;
  97.     };
  98.  
  99.     interface FreeverbGuiFactory : GuiFactory {
  100.     };
  101.  
  102.     interface Effect_WAVECAPTURE : StereoEffect {
  103.         attribute string filename;
  104.     };
  105.  
  106.     interface StereoVolumeControlGui : LayoutBox  {
  107.         /**
  108.             Creates a Gui for a StereoVolumeControl.
  109.             This should be the most often used function.
  110.         */
  111.         void constructor( Arts::StereoVolumeControl svc );
  112.         /*
  113.             The direction from min to max for all elements.
  114.             The elements will be order 90 degree clockwise to it.
  115.         */
  116.         //attribute Direction direction; // Is already in LayoutBox
  117.  
  118.         /// The title of this volumecontrol
  119.         attribute string title;
  120.         /// the minimum and maximum value for levelmeter(only min, max is 0dB) and volumecontrol
  121.         attribute float dbmin, dbmax;
  122.  
  123.         /**
  124.             The elements separate:
  125.                 - the two levelmeter
  126.                 - the volumefader
  127.                 - the tickmarks for levelmeter and volumefader
  128.                 - the Label showing the title of the VolumeControl
  129.             Use this only if you want to connect them to own devices.
  130.         */
  131.         readonly attribute LevelMeter left, right;
  132.         readonly attribute VolumeFader fader;
  133.         readonly attribute Tickmarks levelmetertickmarks, volumefadertickmarks;
  134.         readonly attribute Label label;
  135.  
  136.         /**
  137.             Couples the two VolumeSlider
  138.             Is currently useless since StereoVolumeControl::scaleFactor is
  139.             only one value for both channels.
  140.         */
  141.         attribute boolean couple;
  142.  
  143.     };
  144.  
  145.     interface StereoVolumeControlGuiFactory : Arts::GuiFactory {};
  146. };
  147.  
  148.